package org.cerberus.platform.internal;

import java.io.IOException;

import org.cerberus.platform.internal.domain.IComponentClass;


public interface IProtocol {

	public static final int COMMAND_START = 1;
	public static final int COMMAND_STOP = 2;

	// prio 0
	void command(int commandID)  throws IOException;
	void restore() throws IOException;
	void parameter(String key, String value);
	
	// prio 1
	void newClass(IComponentClass clazz)  throws IOException;
	void removeClass(String classID)  throws IOException;
	
	// prio 2
	void newObject(Object[] object)  throws IOException;
	void removeObject(Integer id)  throws IOException;
	void change(Integer objectId, int index, int attributeCount, Object value);

}
